Memory devices are typically provided as internal, semiconductor, integrated circuits and/or external removable devices in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), flash memory, and resistance variable memory, among others. Types of resistance variable memory include programmable conductor memory, phase change random access memory (PCRAM), resistive random access memory (RRAM), magnetoresistive random access memory (MRAM; also referred to as magnetic random access memory), and conductive-bridging random access memory (CBRAM), among others.
Memory devices can be utilized as volatile and non-volatile memory for a wide range of electronic applications in need of high memory densities, high reliability, and low power consumption. Non-volatile memory may be used in, for example, personal computers, portable memory sticks, solid state drives (SSDs), personal digital assistants (PDAs), digital cameras, cellular telephones, portable music players, e.g., MP3 players, and movie players, among other electronic devices. Data, such as program code, user data, and/or system data, such as a basic input/output system (BIOS), are typically stored in non-volatile memory devices.
Resistance variable memory such as PCRAM includes resistance variable memory cells that can store data based on the resistance of a storage element, e.g., a storage element having a variable resistance. As such, resistance variable memory cells can be programmed to store data corresponding to a target state by varying the resistance level of the resistance variable storage element. Resistance variable memory cells can be programmed to a target state, e.g., corresponding to a particular resistance, by applying sources of an electrical field or energy, such as positive or negative electrical signals, e.g., positive or negative voltage or current signals, to the cells, e.g., to the storage element of the cells, for a particular time interval.
One of a number of states, e.g., resistance states, can be set for a resistance variable memory cell. For example, a single level cell (SLC) may be programmed to one of two states, e.g., logic 1 or 0, which can depend on whether the cell is programmed to a resistance above or below a particular level. As an additional example, various resistance variable memory cells can be programmed to one of multiple different states corresponding to multiple data states, e.g., 10, 01, 00, 11, 111, 101, 100, 1010, 1111, 0101, 0001, etc. Such cells may be referred to as multi state cells, multi-digit cells, and/or multilevel cells (MLCs).
The state of a resistance variable memory cell can be determined, e.g., read, by sensing current through the cell responsive to an applied interrogation voltage. The sensed current, which varies based on the resistance of the cell, can indicate the state of the cell, e.g., the binary data stored by the cell. However, the resistance of a programmed resistance variable memory cell can drift, e.g., shift, over time. Resistance drift can result in erroneous sensing of a resistance variable memory cell, e.g., a determination that the cell is in a state other than that to which it was programmed, among other issues.